DESIGN:

API Entries:
	void ImageSize(vec2i)
	void ImageOutput(String Path, String Name, String Type)
	void GeomData(Geom[] DataBlock)
	void SceneType(Scene)
	void ImageShader(ShadImage)
	void Execute()

Output image data
	No write-synchronization should be necessary. 
	type: Image3

Material
	Inherent to each piece of geometry.
	Eventually should have texture functionality. i.e. Texture[] to store data.
	instance fld: vec3 Albedo
	instance fld: double Emissivity
	type: Material

Material shaders
	Link-able to geometry.
	Parallelize-able; i.e. independent of specific geometry data.
	Examples are Lambert, Specular, etc.
	Subclasses should be static fields in the parent class.
	type: ShadMaterial

Geometry
	instance fld: Material
	instance ref: MATH.Surface3
	instance ref: ShadMaterial
	type: Geom

Scene
	Group of geometry.
	Group of geometry that are light-emitters.
	Subclasses should be static fields in the parent class.
	type: Scene

Parallelized RNGs
	Global, thread-safe methods.
	type: RNG

Image shaders
	Applied to a region of an output image data block.
	Iterates through that region and executes any per-pixel ops.
	Users define a subclass of this class.
	Users define a size that's tiled across the output image.
	This means the size of the bordering shaders will be modified.
	type: ShadImage


